package eu.webhib.extgui.data.intf;

import eu.webhib.frmwrk.domain.intf.ParentChildEntity;
import java.util.List;

/**
 * Base type of entities with parent/child relationship
 * @param T type of the parent/child related entity itself
 */
public interface GuiParentChildEntity<T extends GuiParentChildEntity<T>> extends GuiBaseEntity,
        ParentChildEntity<T> {

   /**
    * Get the parent of this entity
    */
   @Override
   T getParent();

   /**
    * Set the parent of this entity
    */
   @Override
   void setParent(T parent);

   /**
    * Get all children of this entity
    */
   @Override
   List<T> getChildren();
}
